dialog: Stop using GtkHeaderBar::pack-type
authorMatthias Clasen <mclasen@redhat.com>
Wed, 27 Mar 2019 17:35:38 +0000 (13:35 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 27 Mar 2019 17:36:24 +0000 (13:36 -0400)
We want to get rid of child properties.

gtk/gtkdialog.c

index 11b4d7be9bd6aba92d2f87663c5ae4eef4b7e704..dc64bea60d797a8c4be878602e6e307f9f43db43 100644 (file)
@@ -344,42 +344,25 @@ add_response_data (GtkDialog *dialog,
 }
 
 static void
-apply_response_for_header_bar (GtkDialog *dialog,
-                               GtkWidget *child,
-                               gint       response_id)
+add_to_header_bar (GtkDialog *dialog,
+                   GtkWidget *child,
+                   gint       response_id)
 {
   GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog);
-  GtkPackType pack;
 
-  g_assert (gtk_widget_get_parent (child) == priv->headerbar);
+  gtk_widget_set_valign (child, GTK_ALIGN_CENTER);
 
   if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_HELP)
-    pack = GTK_PACK_START;
+    gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->headerbar), child);
   else
-    pack = GTK_PACK_END;
+    gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->headerbar), child);
 
-  gtk_container_child_set (GTK_CONTAINER (priv->headerbar), child,
-                           "pack-type", pack,
-                           NULL);
+  gtk_size_group_add_widget (priv->size_group, child);
 
   if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_CLOSE)
     gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (priv->headerbar), FALSE);
 }
 
-static void
-add_to_header_bar (GtkDialog *dialog,
-                   GtkWidget *child,
-                   gint       response_id)
-{
-  GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog);
-
-  gtk_widget_set_valign (child, GTK_ALIGN_CENTER);
-  gtk_container_add (GTK_CONTAINER (priv->headerbar), child);
-  gtk_size_group_add_widget (priv->size_group, child);
-  apply_response_for_header_bar (dialog, child, response_id);
-
-}
-
 static void
 apply_response_for_action_area (GtkDialog *dialog,
                                 GtkWidget *child,
@@ -1536,7 +1519,12 @@ gtk_dialog_buildable_custom_finished (GtkBuildable *buildable,
       else if (gtk_widget_get_parent (GTK_WIDGET (object)) == priv->headerbar)
         {
           if (is_action)
-            apply_response_for_header_bar (dialog, GTK_WIDGET (object), ad->response_id);
+            {
+              g_object_ref (object);
+              gtk_container_remove (GTK_CONTAINER (priv->headerbar), GTK_WIDGET (object));
+              add_to_header_bar (dialog, GTK_WIDGET (object), ad->response_id);
+              g_object_unref (object);
+            }
         }
 
       if (item->is_default)